package com.woniu.gf.pawn.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.gf.pawn.comm.core.domain.Image;
import com.woniu.gf.pawn.comm.core.domain.ProductBigType;
import com.woniu.gf.pawn.comm.core.domain.ProductBigTypeIdentifyImageDefinition;
import com.woniu.gf.pawn.comm.core.domain.ProductBigTypeIdentifyImageDefinitionBigType;
import com.woniu.gf.pawn.product.dto.FindByBigTypeIdDto;
import com.woniu.gf.pawn.product.parma.FindProductBigTypePageParam;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Lucas
 * @since 2020-10-13
 */
public interface IProductBigTypeService extends IService<ProductBigType> {

    /**
     * 新增大类
     * @param productBigType
     * @param image
     */
    void addProductBigType(ProductBigType productBigType, Image image, List<ProductBigTypeIdentifyImageDefinition> productBigTypeIdentifyImageDefinitions,List<ProductBigTypeIdentifyImageDefinitionBigType> productBigTypeIdentifyImageDefinitionBigTypes);

    /**
     * 判断大类名字是否重复
     * @param name
     * @return
     */
    ProductBigType findName(String name) throws Exception;

    /**
     * 查询分页
     * @param findProductBigTypePageParam
     * @return
     */
    IPage<ProductBigType> selectPageVo(FindProductBigTypePageParam findProductBigTypePageParam);

    /**
     * 查询大类对应的鉴定定义
     *
     */
    List<Map<String, String>> findByIdDefinition(Integer bigId);


    /**
     * 修改大类信息
     */
    void updateProductBigType(ProductBigType productBigType,List<ProductBigTypeIdentifyImageDefinition> productBigTypeIdentifyImageDefinitions,List<ProductBigTypeIdentifyImageDefinitionBigType> productBigTypeIdentifyImageDefinitionBigTypes,Image image);


    /**
     * 大类的删除
     */
    void deleteBigType(List<Integer> bigIds);

    FindByBigTypeIdDto findAllByBigTypeId(Integer bigTypeId);

    List<ProductBigType> findAllBigType();
}
